home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 2010 April / PCWorld0410.iso / hity wydania / Ubuntu 9.10 PL / karmelkowy-koliberek-9.10-netbook-remix-PL.iso / casper / filesystem.squashfs / usr / share / pyshared / nevow / query.pyc (.txt) < prev    next >
Encoding:
Python Compiled Bytecode  |  2009-03-23  |  6.0 KB  |  144 lines

  1. # Source Generated with Decompyle++
  2. # File: in.pyc (Python 2.6)
  3.  
  4. '''inevow.IQ adapter implementations.
  5. '''
  6. import twisted.python.components as tpc
  7. from nevow import inevow, stan
  8. from zope.interface import implements
  9.  
  10. class QueryContext(tpc.Adapter):
  11.     implements(inevow.IQ)
  12.     
  13.     def _locatePatterns(self, pattern, default, loop = True):
  14.         if self.original.tag.pattern == pattern:
  15.             yield self.original.tag.clone(deep = False, clearPattern = True)
  16.         
  17.         for node in stan._locatePatterns(self.original.tag, pattern, default):
  18.             yield node
  19.         
  20.  
  21.     
  22.     def patternGenerator(self, pattern, default = None):
  23.         return stan.PatternTag(self._locatePatterns(pattern, default))
  24.  
  25.     
  26.     def allPatterns(self, pattern):
  27.         if self.original.tag.pattern == pattern:
  28.             yield self.original.tag
  29.         
  30.         for pat in self.original.tag.allPatterns(pattern):
  31.             yield pat
  32.         
  33.  
  34.     
  35.     def onePattern(self, pattern):
  36.         return self.original.tag.onePattern(pattern)
  37.  
  38.  
  39.  
  40. class QueryList(tpc.Adapter):
  41.     
  42.     def _locatePatterns(self, pattern, default, loop = True):
  43.         produced = []
  44.         for item in self.original:
  45.             
  46.             try:
  47.                 for x in inevow.IQ(item)._locatePatterns(pattern, None, loop = False):
  48.                     produced.append(x)
  49.                     yield x.clone(deep = False, clearPattern = True)
  50.             continue
  51.             except stan.NodeNotFound:
  52.                 continue
  53.                 continue
  54.             
  55.  
  56.         
  57.         if default is None:
  58.             raise stan.NodeNotFound, ('pattern', pattern)
  59.         default is None
  60.         if hasattr(default, 'clone'):
  61.             while True:
  62.                 yield default.clone(deep = False)
  63.                 None if produced else None<EXCEPTION MATCH>stan.NodeNotFound
  64.         else:
  65.             while True:
  66.                 yield default
  67.                 None if produced else None<EXCEPTION MATCH>stan.NodeNotFound
  68.  
  69.     
  70.     def patternGenerator(self, pattern, default = None):
  71.         return stan.PatternTag(self._locatePatterns(pattern, default))
  72.  
  73.     
  74.     def allPatterns(self, pattern):
  75.         for item in self.original:
  76.             for pat in inevow.IQ(item).allPatterns(pattern):
  77.                 yield pat
  78.             
  79.         
  80.  
  81.     
  82.     def onePattern(self, pattern):
  83.         node = None
  84.         for item in self.original:
  85.             
  86.             try:
  87.                 newNode = inevow.IQ(item).onePattern(pattern)
  88.             except stan.NodeNotFound:
  89.                 continue
  90.                 continue
  91.  
  92.             if node is None:
  93.                 node = newNode
  94.                 continue
  95.             raise stan.TooManyNodes('pattern', pattern)
  96.         
  97.         if node is None:
  98.             raise stan.NodeNotFound('pattern', pattern)
  99.         node is None
  100.         return node
  101.  
  102.  
  103.  
  104. class QuerySlot(QueryList):
  105.     
  106.     def __init__(self, original):
  107.         QueryList.__init__(self, original.children)
  108.  
  109.  
  110.  
  111. class QueryNeverFind(tpc.Adapter):
  112.     
  113.     def patternGenerator(self, pattern, default = None):
  114.         raise stan.NodeNotFound, ('pattern', pattern)
  115.  
  116.     
  117.     def allPatterns(self, pattern):
  118.         return []
  119.  
  120.     
  121.     def onePattern(self, pattern):
  122.         raise stan.NodeNotFound, ('pattern', pattern)
  123.  
  124.     
  125.     def _locatePatterns(self, pattern, default, loop = True):
  126.         return []
  127.  
  128.  
  129.  
  130. class QueryLoader(tpc.Adapter):
  131.     
  132.     def patternGenerator(self, pattern, default = None):
  133.         return inevow.IQ(self.original.load()).patternGenerator(pattern, default)
  134.  
  135.     
  136.     def allPatterns(self, pattern):
  137.         return inevow.IQ(self.original.load()).allPatterns(pattern)
  138.  
  139.     
  140.     def onePattern(self, pattern):
  141.         return inevow.IQ(self.original.load()).onePattern(pattern)
  142.  
  143.  
  144.